package com.das.mechanic_base.mvp.contract.create;

import com.das.mechanic_base.base.X3IBaseView;
import com.das.mechanic_base.bean.create.MapReceiveStatusBean;
import com.das.mechanic_base.bean.create.ServiceInfoBean;
import com.das.mechanic_base.bean.main.CarPicAndColorBean;
import com.das.mechanic_base.bean.main.CarSelectBean;
import com.das.mechanic_base.bean.main.DetectionNewBean;
import com.das.mechanic_base.bean.main.HomeMainCarBean;

import java.io.File;
import java.util.List;

public interface X3ServiceInfoContract {

    interface View extends X3IBaseView {

        void getReceiveSuccess(ServiceInfoBean infoBean);

        void getReceiveStatusListSuccess(MapReceiveStatusBean statusBean);

        /**
         * 根据接车单id获取接车单数据
         *
         * @param mainCarBean
         */
        void getReceiveBase(HomeMainCarBean mainCarBean);

        /**
         * 更新车型数据成功
         */
        void updateCarTypeSuccess();

        /**
         * 更新车型数据失败
         */
        void updateCarTypeFail();

        void uploadCarPicSuccess(CarPicAndColorBean colorBean);

        void getVin(String vin);

        void closeReceiveBaseSuccess();

        void getDetectionFirstInfoSuccess(List<DetectionNewBean> mList);

        /**
         * 保存初检成功
         */
        void saveDetectionFirstInfoSuccess();
    }

    interface Presenter {

        void getReceiveForMechanic(long receiveId);

        /**
         * 获取施工单的状态列表服务步序图
         *
         * @param receiveBaseId
         */
        void getReceiveStatusList(long receiveBaseId);

        /**
         * 根据接车单id获取车辆数据
         */
        void getReceiveBase(long receiveId);

        void requestVin(File carVin);

        /**
         * 更新接车单 车辆信息
         *
         * @param selectBean
         * @param carNum
         */
        void updateReceiveCar(CarSelectBean selectBean, String carNum);

        /**
         * 上传车辆切割图
         */
        void uploadCarPic(long carId,String imgPath,String carNum);

        /**
         * 关闭接车单
         * @param receiveBaseId
         */
        void closeReceiveBase(long receiveBaseId);

        /**
         * 获取初检信息
         * @param receiveBaseId
         */
        void getDetectionFirstInfo(long receiveBaseId);

        /**
         * 保存初检
         * @param mList
         */
        void saveDetectionFirstInfo(List<DetectionNewBean> mList,long receiveBaseId);
    }
}
